@瞌睡虫
2年前 提问
1个回答

制定安全代码审查时需要考虑哪些因素

Ann
2年前

制定安全代码审查时需要考虑以下因素:

  • 风险:确保每个要素100%安全是不可能的,因此,以基于风险的方法考虑功能和组件的安全审查优先等级十分重要。本项目重点围绕安全设计中的关键区域,虽然程序员提交到代码库的所有代码都应该被审查,但是并非所有代码都会在安全审查时受到关注和监督。

  • 目的与背景:计算机程序往往有着不同的作用,因此,安全等级将取决于千差万别的功能。网络支付应用程序比促销网站要求更高的安全标准。企业应当持续关注想要保护的内容。在支付应用程序中,信用卡数据将具有最高安全优先级;而在促销网站中,保护与 Web 服务器的连接凭据是最重要的任务之一。这是另一种在基于风险的方法中考虑代码上下文的方式,安全代码审查人员应该了解这些优先等级的情况。

  • 代码行数:需要审查的代码行数是安全代码审查工作量的一个指标。集成开发环境(如Visual Studio或Eclipse)具有计算代码行数的功能,UNIX或LINUX系统中也有能够计算代码行数的简单工具,如“WC”。用面向对象语言编写的程序包含很多类对象,每个类相当于一页代码。通常,代码行号用于精确定位必须更正的代码位置,在复查代码是否被开发人员更正时非常有用(如代码库中的历史记录)。一个程序包含的代码行越多,代码出现错误的可能性就越大。

  • 编程语言:安全语言(如C# 或Java)编写的程序与其他语言(如C和C++)编写的程序相比,更不易产生某些安全漏洞(如缓冲区溢出)。当执行安全代码审查时,可以根据语言的种类预判可能存在的漏洞。通常,软件公司倾向于使用程序员擅长的语言开发软件。然而,当决定使用开发人员不熟悉的新语言创建新代码时,管理层应意识到由于缺乏内部经验而增加了安全审查的风险。

  • 资源、时间和期限:一直以来,资源、时间和期限是审查的重要因素。与简单程序相比,复杂程序进行必要的安全代码审查需要更长时间、更高的分析技能。如果不能提供适当的资源,就意味着更高的风险。因此,确保在执行审查时清楚地评估这些资源。